/**
 * ajax工具函数
 */
import axios from 'axios';
import {ElMessage} from 'element-plus'
//配置默认参数
const instance = axios.create({
    // withCredentials是XMLHttpRequest的一个属性，表示跨域请求是否提供凭据信息(cookie、HTTP认证及客户端SSL证明等)
    // withCredentials: true,
    //超时时间10秒
    timeout: 10000,
    //配置URL地址（服务器接口地址）
    // baseURL: 'http://sellserve.hxw.asia:5000'
    baseURL: 'api'
})
instance.defaults.headers.post = {
    'Content-Type': 'application/x-www-form-urlencoded'
}
instance.defaults.headers.common = {
    'Auth-Type': 'company-web',
    'X-Requested-With': 'XMLHttpRequest',
}
//配置请求拦截器 在进行axios请求之前进行的操作叫做请求拦截器
instance.interceptors.request.use((config: any) => {
    // 获取本地存储中的t_k
    let token: any = sessionStorage.getItem("t_k")
    // 判断本地存储是否有token
    if (token) {
        config.headers.authorization = token
    }
    return config
}, err => {
    console.log('请求拦截', err)
    return Promise.reject(err)
})
//配置响应拦截器  在进行axios响应时进行的操作叫做响应拦截器
instance.interceptors.response.use(response => {
    let {code, msg} = response.data
    if (code == 0) {
        ElMessage({
            message: msg,
            grouping: true,
            type: 'success',
        })
    } else if (code == 1) {
        ElMessage.error(msg)
    } else if (code == 5001) {
        ElMessage.error(msg)
    } else if (code == 401) {
        ElMessage.error(msg)
    }
    return response
}, err => {
    let {message} = err
    ElMessage.error(message)
    console.log('响应拦截', err)
    return Promise.reject(err)
})
//导出配置好的axios
export default instance